home *** CD-ROM | disk | FTP | other *** search
- TNOS Release Notes - Release 2.22
- Brian A. Lantz, brian@lantz.com
- v1.00, June 28, 1997
-
- These are the FINAL Release Notes for release 2.22 of TNOS. Hope-
- fully, this list of changes will give you an idea of the scope of work
- that has occured since the release of TNOS 2.21.
- ______________________________________________________________________
-
- Table of Contents:
-
- 1. Bug Fixes
-
- 2. Improvements and Enhancements
-
- 3. Minor Changes
-
- 4. Remaining Known Bugs
-
- 5. To-Do List
- ______________________________________________________________________
-
- 1. Bug Fixes
-
- The following bugs have been squashed.
-
- o Minor browser fix to use only the LAST <TITLE> tag, if multiples
- exist
- An old HTML trick was to define multiple TITLEs on a page, to get a
- kinda scrolling marquee effect from the title in the window's
- titlebar changing. The TNOS browser wasn't set up to properly
- discard all but the final one.
-
- o Cleanup up some code conditionals when forwarding and converse are
- omitted
-
- o Cleanup to again allow MBFWD flag to be undefined
-
- o Proper treatment of PBBS messages with callsign fields > 6
- characters long When trying to send via PBBS forwarding messages
- with Internet addresses that had the user or first section of the
- hostname with more than 6 characters, previously this would be re-
- addressed as 'areaname@areaname', using the current area's name.
- This was NEVER correct. Since non-ham messages should NOT be
- passing via PBBS forwarding, such messages will now be marked as
- deleted (if in personal areas) and removed from the forwarding
- queues.
-
- o Fixed where rejected personal messages weren't being deleted from
- mailboxes
-
- o Corrected formatting of TCB in 'tcp view' command
-
- o Fixed a linking problem if HTTP defined but not BROWSER
-
- o A workaround for a libc bug in free()
- Some versions of GNU libc (at least some for Linux) have a bad bug
- that once it happens, a call to __libc_free() never returns. I have
- added code to the Unix version to keep this from disabling a system
- indefinitely. While I cannot recover gracefully from this, if a
- call to free takes longer than 60 seconds to return, then TNOS is
- exited. This allows properly configured systems with restart
- scripts (or an entry in the inittab file) to only be 'locked up'
- for one minute due to this libc bug.
- I have no idea why this is happening in the library, but it SEEMS
- to be related to a free getting called while the OS is swapping to
- disk.
-
- o Fixed an incompatibility between SETPSINFO flag an environment
- variables
- The SETPSINFO code does it's magic by basically trashing the
- command line arguments and environment variables. While I knew this
- when I added the code for the SETPSINFO, I hadn't thought of
- possible problems.
- A couple of places in the code used environment variables (if they
- existed) while we now effectively disabled. In addition, depending
- on the timing on startup, the TERM environment variable would (at
- times) be cleared before the NCURSES code had a chance to read it.
-
- o Re-enabled '412 No newsgroup selected' NNTP server message
-
- o Fixed a bug in the HTTP server that preventing using ports other
- than 80
-
- o Fixed crash if <PgUp> used from Command Session
-
- o FBB forwarding problem if all messages in a transfer refused
- It seems that on occasion with FBB, if an entire negotiated
- transfer is rejected (all are answered as '-'), and there are more
- in that section, then the rest would be ignored and also marked as
- deleted.
-
- o FBB/Xfwd problem if 'SB'ed message in personal area
- Also, if a message in a negotiated transfer (contained in a
- personal mail area) was original sent as a 'SB', then the other
- messages in that transfer were also marked as 'SB'. This one, while
- VERY rare, was a bear to find ;-)
- And, messages MARKED as 'SB' (as above, in a personal area) were
- NOT getting properly deleted (because of the 'B').
-
- o Fixed a buglet with unusually 'Sx' lines in reject checking
-
- o Fixed the 'time' server to properly adjust to UTC
-
- o Made a few minor forwarding mods, to handle rare quirks
-
- o Fixed the 'ping of self' resource contention buglet
- If from your TNOS console you ping'ed your self, a crash would
- usually follow. This was caused by a timing problem. When the raw
- IP socket was opened to send the ping, it added an entry into a
- table. That same table is traversed when an incoming packet is
- received. When the send of the ping is complete, that entry is
- removed. What was happening was that the table was having the entry
- removed WHILE it was being traversed.
- This timing was only 'just right' when pinging from the console;
- pinging yourself from the PBBS didn't cause the problem.
-
- o Fixed a problem of occasional non-clearing of HTTP connections
- This occured when the 'http simult' value was reached, a connection
- was waiting for a 'slot' to get it's data with, and the user
- impatiently disconnected the socket. It was compounded by trying to
- have one counter doing two functions (obviously, not very well ;-)
-
- o Fixed a bug when 'conv entrychannel' wasn't being used for telnet
- connects
-
- o Fixed bug where bad rewrite file could abort forwarding session
-
- o All the above included in 2.22b1
-
- o Added patch from Gareth to do White Page lookups properly w/out
- ASKHOME
- o Minor fix for NNTPCLI support
-
- o Minor fix for newer LIBC jmp_buf.h file under Linux
-
- o Minor fix to area cleanup code, when exiting BBS
-
- o Minor fix in rspf.c to prevent calling set_timer from a null route
-
- o Minor fixed in wildmat.c to prevent calling with empty or null
- string
-
- o Fix for obscure statline problem
-
- o All the above included in 2.22b2
-
- o Fixed a problem with large SOA's being output if 'dom tr on'
-
- o Fixed an improperly dereferenced pointer in fbbfwd.c
-
- o Added code to convert to lowercase username in HTTP PBBS code
-
- o Fixed an obscure bug with forward sessions and keyboard locking
-
- o Workaround for bug where some PBBSs send an extra forwarding
- prompt
-
- o Fixed a rare problem with F9'ing from Command to Trace session
-
- o Fixed a fwding problem if more than one Message-Id lines in a
- message
-
- o Fixed a problem with AXUI and digis
-
- o All the above included in 2.22b3
-
- o Plugged an obscure security hole with PBBS finger command
-
- o Fixed a problem accessing sockets with TNOS/DOS
-
- 2. Improvements and Enhancements
-
- The following optimizations and improvements have occurred.
-
- o Added support to the Browser for <MARQUEE> tags
- This scrolling marquee is placed on the top line of the three line
- control area at the bottom of the browser screen. If an ISINDEX tag
- is present on the same page as a MARQUEE, the MARQUEE is ignored,
- since the ISINDEX instructions use the same line in the control
- area.
- Also, if there are more than one MARQUEE tags in a page, the last
- one is the one displayed.
-
- o TNOS Statusline News Server added
- Building on the browser marquee code, the statusline for the
- Command Session can now have a marquee which gets updated from a
- special URL at www.lantz.com.
- NOTE: This server is only compiled in if the BROWSER flag is set!
- To enable display of the Statusline News Server, you need two
- commands. The first is 'start statnews'. This retrieves the
- current news info from www.lantz.com, and then it waits till the
- top of the next hour, and does it again. While the updates occur in
- minute zero of the hour, the second is purposely randomized based
- on the last part of the 'ip address', to keep from having a 'pile
- up' on second zero ;-)
- The updating of this data can be stopped with 'stop statnews'. You
- can do a 'start statnews' at any time, to single to that process
- for it to re-read the News URL at that time, if you wish.
- The second step is that you need to add a 'M' to your 'statmode'
- command. If you are not using a 'statmode', then this is part of
- the default display. A 'stop statnews' command has no effect on
- this, though. If the 'M'arquee flag is set for your 'statmode',
- then the last retrieved news will be displayed.
-
- o Support for recent ncurses (1.9.9e)
-
- o Color support added to Unix versions
- The various color commands now work with Unix and curses.
-
- o Added creation of a 'structur.fil' file on startup
- This file contains the default and actual (in use) names for all
- modifyable filenames, directory names, and default session manager
- names. This can be used to help rectify problems discovering where
- TNOS expect a file or directory to be located.
- The 'in use' section of this file can be saved separately, and used
- as a configuration file with the '-f configfile' command line
- option, if desired.
- The 'structur.fil' file is created in the TNOS root directory used
- on execution.
-
- o Finished port of DOS SCREENSAVER code for Unix
- Now the SCREENSAVER can be compiled into TNOS/Unix and used.
-
- o Started adding in full support for CGI applications
-
- o CGI environment variable available in 'echo var=' Server-Side
- Includes
- All environment variables (regular and CGI) are available in this
- manner, if the HTTPCGI flag is set when TNOS is compiled.
- NOTE: MSDOS users using this will want to make sure to allocate a
- large enough environment size, using the CONFIG.SYS 'SHELL'
- command.
-
- o Added a 'http execcgi' command to allow disabling of CGI at
- runtime
- This is off (set to 0) by default.
-
- o Added a 'wpages clientcall' to set the FROM call of WP client
- updates
-
- o Temporarily added a forwarding connection type of 'fbbtelnet' for
- FBB 'telnet' forwarding
- FBB's 'telnet' share the same NAME as the RFC854 protocol, but
- little else. It IMPROPERLY handles <CR> usage, and cannot seem to
- properly handle binary compressed forwarding. If you need to use
- telnet to forward to a FBB PBBS, then make the connection type
- 'fbbtelnet' instead of 'telnet' in your forward.bbs file. This will
- hack the <CR> problem and restrict the forwarding mode to non-
- compresses FBB-style forwarding.
- This is only temporary, and may not remain until the official
- release of TNOS 2.22. I am working with F6FBB to help him make his
- 'telnet' more standard.
-
- o Added a 'http hostname' command to set the default hostname of the
- HTTP server
- This allows you to define this as a different hostname from the
- 'hostname' of the TNOS box itself.
-
- o HTTP server is now a multi-homed server!
- That is, it can now provide different input for different IP
- addresses, and respond as different hostnames. The 'start http
- <port> <rootdir>' command now has additional optional parameters
- for hostname and ip address to use. For a syntax listing of this
- command, do a 'start http ?'.
- The port still defaults to 80. The dirname still defaults to the
- 'http' directory under your TNOS root directory. The hostname
- defaults to the setting of the 'http hostname' command (which
- itself defaults to the value specified by the 'hostname' command).
- The ip address defaults to INADDR_ANY, or ANY IP address that TNOS
- has assigned to it for any interface.
- All optional parameters can be specified as '-', if needed, to
- retain the default setting for that parameter.
- This can also be used to only serve HTTP data on certain addresses
- in use on the TNOS box, but not to ALL addresses.
-
- o Added a generic Message server
- This allows you to set up a specified port to listen for
- connections, and when they are received, to output a user-definable
- message, followed by a disconnect. The port a Message server can be
- installed on is configurable, and so is the optional ip address
- (which defaults to INADDR_ANY, or ANY IP address that TNOS has
- assigned to it for any interface).
- Newlines (or blank lines) can be imbedded in the message string by
- using "\n" within the string.
- For a usage string for the Message server, do a 'start message' or
- 'stop message'.
-
- o Added a generic TScript message server
- This is like the Message server mentioned previously, but instead
- of defining a string to be sent to the remote machine upon
- connection to a specified socket port, a TScript script to be run
- is defined. This can include ANY TScript commands valid in a
- TUTOR/NEWS/INFO server, a 'script' command, or a scripthook file.
- The port a Message server can be installed on is configurable, and
- so is the optional ip address (which defaults to INADDR_ANY, or ANY
- IP address that TNOS has assigned to it for any interface).
- For a usage string for the TScript server, do a 'start tscript' or
- 'stop tscript'.
-
- o Added a 'pbbs pruneage' command to allow variable prune aging
- By default, the 'pbbs pruneage' is set to 6 months. The value of
- this command is used with the 'pbbs prune' command.
-
- o Modified the 'pbbs prune' and 'expire' commands to remove empty
- files
-
- o All the above included in 2.22b1
-
- o Added RIP98 support, thanks to Gareth! The impact of this
- addition (as well as a good description of how to set up RIP) is
- described in a file from Gareth, located at
- ftp://ftp.lantz.com/tnos/misc/RIP98.txt
-
- o If you are running the HTTP server, read the next entry!
-
- o IMPORTANT HTTP CHANGE!! Default file changed from root.htm(l) to
- index.htm(l)
-
- o If you are running the HTTP server, did you read the above entry?
-
- o Removed the AX25PASSWORD compile flag
-
- o Added a 'pbbs ax25passwd' command
- This allows you to configure at run-time (rather than compile time)
- the ability to make all users (with accounts in the FTPUSER file)
- confirm their identities with a password over AX.25. Netrom and
- telnet connects are not affected by this, neither are anonymous
- users or users defined as PBBSs in the FTPUSERS file. The default
- for this command is off.
-
- o Changed build-make.inc to accomidate for recent NCURSES releases
- While previous NCURSES releases had a /usr/include/ncurses
- directory, or a /usr/local/include/ncurses.h file, the recent
- version has neither, but now just uses a /usr/include/curses.h
- file. To accomidate this, if the older ncurses directory or file is
- not found, a symlink is created of /usr/include/ncurses.h which
- points to /usr/include/curses.h. TNOS includes ncurses.h (still
- does, for this purpose) to avoid accidently including a non-ncurses
- header file, on older systems.
-
- o All the above included in 2.22b2
-
- o Added code to prevent possibility of dups or forgeries
- This is in three parts. First, if an outbound forwarding session
- does NOT see a SID from the remote PBBS (due to either a bad
- forwarding script in your forward.bbs file, or a SERIOUS problem
- with the remote), then the forwarding session is aborted, a message
- is logged in the logfile, and also a message is sent to the console
- (whether 'forward trace' is on or not). This prevents TNOS from
- being the cause for dups!
- But, this isn't enough, as the remote of an incoming forwarding
- session could have an erroneous forwarding script on IT'S side,
- causing IT to eat the SID sent by your TNOS. In that case, you
- don't KNOW that it's a BBS, as it never identified itself as one.
- To guard against this, if a message is sent and it has R: lines but
- it is NOT identified as a PBBS (with a received SID), then the
- message is automatically held, and an error message is logged in
- the logfile. These messages are not deleted, so you have them for a
- reference in communications with the remote sysop, but they should
- NOT be simply released, as they now have a NEW bid!
- Note, this same 'fix' also prevents users being able to impersonate
- other users as messages originated from other systems, as was the
- case recently when someone attempted to impersonated W0RLI. This
- was done by a user entering a 'sb' line with a '< W0RLI' and a
- first data line of a dummied-up R: line, making it LOOK like it was
- from W0RLI, and forwarded from his PBBS. Users should NOT be
- allowed to produce such forgeries.
- Also, if a bulletin is received from a PBBS, with R: lines but NO
- BID, this is ALSO held, with an error in the logfile. This also
- indicates an error on the REMOTE system. These messages should also
- NOT be released. This cannot happen if the 'pbbs nobid off' command
- is used, but if the 'pbbs nobid' command is 'on', this will hold
- the message anyway.
- If a non-bulletin is received from a PBBS, with R: lines but NO
- BID/MID, this generates a warning message in the logfile, but is
- NOT held. There has NEVER been an agreement among PBBS authors as
- to MIDs, though most (except for W0RLI) treat MIDs and BIDs mostly
- identically. By the specification non-bulletins aren't REQUIRED to
- have a BID. If this occurs, the received message will have it's MID
- made into a BID, and passed on. This is usually not a problem (to
- anyone but Hank), as personal messages are not 'flooded' as
- bulletins. The worst that happens is that the same personal message
- gets delivered multiple times. (NOTE: personal messages to
- 'sysop@*' are treated as bulletins by TNOS, and most all other
- PBBSs).
-
- o TNOS treatment of BIDs/MIDs
- TNOS is totally compliant with the PBBS specification in this
- regard. The spec states that all bulletins must have BIDs and if a
- PBBS receives a message without one, it assigns one. The
- specification states that a BID is optional for personal messages
- and should NOT be assigned to NTS messages.
- In regards to MIDs, the specification states that "Because of
- considerable disagreement between the authors of existing systems
- on the implementation of this feature (MIDs), it is not included as
- part of this recommendation. There is no requirement that a BBS
- implement a MID feature."
- TNOS assigns a MID (message ID) to all messages. If a non-bulletin
- message does NOT have a BID, then the MID is used in it's place in
- all occurances. All messages forwarded from TNOS systems will
- either have a BID or a MID sent with them. NO messages will ever be
- forwarded from a TNOS system without a BID or MID.
- This treatment of MIDs by TNOS is consistent with the
- specification, contrary to what W0RLI would like to believe ;-) If
- something is not covered by a spec and left to interpretation, then
- nobody's implementation is incorrect.
-
- o Automatic location/verification of LOCKDIR's existence
- The following paths are checked (in this order) and the LOCKDIR is
- set to the first one that matches. If none of them are found, an
- error message is printed, and TNOS exits.
-
- o /usr/spool/uucp
-
- o /var/spool/lock
-
- o /var/spool/uucp
-
- o /var/lock
-
- o Added '-l lockdirpath' command line parameter
- This allows you to set up a custom LOCKDIR path, if needed.
-
- o Added a 'smtp holdscanall' command
- For some reason (which I cannot remember) the scanning of the
- wordhold.dat and userhold.dat files was coded to NOT check files
- received from remote sites, but to only scan locally generated
- messages. This new command will allow you to have ALL email
- messages scanned by these files, and held if there is a reason.
- This command is 'off' by default, so it works like it always has.
-
- o All the above included in 2.22b3
-
- 3. Minor Changes
-
- The following minor changes have occurred.
-
- o Added additional output to 'http status' command
-
- o Added a idle timeout to TCPGATE code
- Uses a hard-coded constant in tcpgate.c, which defaults to 10
- minutes.
-
- o Updated the config.hlp file, used by mkconfig.tcl
-
- o New outbound forwarding sessions are now inhibited once shutdown
- starts
-
- o Added code to make usable PBBS BID from any internet MessageId
-
- o Reformatted the 'daytime' server's output, adding timezone
-
- o Removed the no longer functional 'isat' command
-
- o More lint cleanup, this time in MSDOS code
-
- o All the above included in 2.22b1
-
- o HTTP server treats .htm files the same now as .html
-
- o All the above included in 2.22b2
-
- o Improved the 'forward alteredbids' command's scanning
- While correctly identifying a change in BID within a message, the
- scanning was changed to prevent needless message holding/deleting.
- This would occur if a truncated BID was found within the R: lines,
- without the REAL bid being affected. Now, if the BID in an R: line
- is NOT the same as the BID received, it is only flagged if it is
- NOT a truncated version of the BID. If it differs (or is longer
- than the BID received), it will be flagged, but no 'false alerts'
- will be given due to truncated R: lines.
- With the OBVIOUS flood of newbie SYSOPS and their desire to put all
- sorts of MEANINGLESS garbage in their R: lines (causing the NEEDED
- BID to get lost or truncated), this modification should help.
-
- o Minor changes to support new glibc library
- Compiles and runs, but there still MAY be an unresolved problem or
- two with glibc still. We'll just have to see.
-
- o Dramatically simplified files.c and created auth.c
- Moved authentication functions to a new file, auth.c, and did a lot
- of code simplification to files.c. Leaner and meaner....
-
- o All the above included in 2.22b3
-
- o Some lint cleanups
-
- 4. Remaining Known Bugs
-
- The following are known bugs that will be addressed in the near
- future. These may or may not be fixed before the next release is made
- available.
-
- 1. The proxy server scripts do not seem to work properly
- There is a problem, that is being looked into, which seems to be
- related to calling scripts from within scripts (which proxy.scr
- DOES).
-
- 2. None other at this time.... ;-)
-
- 5. To-Do List
-
- The following are things on the author's 'to-do' list that are being
- considered for this or a future release of TNOS. These may eventually
- be done, but not necessarily by the next release.
-
- 1. Complete the spec and coding of the non-IP HTTP PBBS interface
-
- 2. Add to the browser support for the 'select' and 'textarea' tags
-
- 3. Add to the browser better rendering of tables within tables
-
- 4. Export a complete set of CGI environment variables when 'exec cmd'
- used
- Currently you can execute a program and pass in explicit parameters
- (which CAN be dynamically assigned using server-side includes), but
- it is NOT a CGI-compatible interface. I will consider adding this
- at a later time.
-
- 5. Add capability to allow use of OS commands
- This includes finishing the incomplete 'pipe' command in the Unix
- release. Due to the obvious restrictions of MS-DOS (memory, etc.),
- this WILL be considered for Unix version only.
-
- 6. Add better support for PBBS<->Internet mail address translation
- The 'translate' file and improved handling of aliases is a START,
- but more work needs to be done here. Maybe a 'translate.out'
- file...
-
- 7. Add code to allow a TIP socket type, for use with LL Modems
-
- 8. Tweek the WPages code a bit
- Need to improve the code that insures that the wpagebbs entries are
- correct, of the proper length, and actually look like hier
- addresses. Also, make the expiring of WPages files less fragile if
- the file has become corrupted.
-
- 9. Check into duplicate entries in the WP files
- While not harmful, the WPages routines SHOULD be overwriting
- existing entries, NOT creating new ones.
-
- 10.
- Consider adding intelligence to convers links
- The idea being that if there are no incoming links, and no local
- users, that the remote outgoing link would be brought down until
- this changed.
-
- 11.
- Consider moving MSDOS version to curses for screen I/O
-